home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Revolution - Das Atari CD Magazin 1997
/
Revolution - Das Atari CD Magazin 1.iso
/
software
/
anwendng
/
qed_397
/
sourcen
/
windows.h
< prev
next >
Wrap
C/C++ Source or Header
|
1996-10-13
|
8KB
|
210 lines
/***************************************************************************/
/* */
/* Modul: WINDOWS.H */
/* */
/***************************************************************************/
#ifndef _qed_windows_h_
#define _qed_windows_h_
/****** DEFINES ************************************************************/
#define DESK 0
#define CLASS_EDIT 2
#define CLASS_CLIP 3
#define CLASS_PROJEKT 4
#define CLASS_TRASH 5
#define CLASS_DIALOG 6
#define CLASS_ICON 7 /* Iconify */
#define WI_NONE 0x0000 /* Keine Flags */
#define WI_FULLED 0x0001 /* Fenster auf voller Größe */
#define WI_MAIN_MENU 0x0002 /* Menü dieses Fensters ist nicht im Fenster */
#define WI_TEXT 0x0004 /* Fenster enthält Text mit TAB und CR */
#define WI_MOUSE 0x0008 /* Eigene Mausform */
#define WI_NOTDRAWED 0x0020 /* Eine redraw-Msg wird geschluckt */
#define WI_FONTSIZE 0x0040 /* Bei Fontänderung Größenanpassung */
#define WI_REDRAW 0x0080 /* Fenster ganz redrawen bei size */
#define WI_MODAL 0x0100 /* Flag für "Modales Dialog-Fenster" */
#define WI_MODELESS 0x0200 /* Flag für "Nicht-Modales Dialog-Fenster" */
#define WI_ICONIFIED 0x0400 /* Fenster ist Icon */
/* Aktionen auf Icons */
#define DO_UNDO 0
#define DO_CUT 1
#define DO_COPY 2
#define DO_PASTE 3
#define DO_CLEAR 4 /* Objekt säubern */
#define DO_SELALL 5
#define DO_CLOSE 6 /* alle Fenster zum Object schließen */
#define DO_DESTRUCT 7 /* wie DO_CLOSE, nur auch Fenster und Objekt löschen */
#define DO_OPEN 8 /* ein Fenster öffnen */
#define DO_INFO 9
#define DO_HELP 10
#define DO_LEFT 11
#define DO_RIGHT 12
#define DO_FORMAT 13
#define DO_PRINT 14
#define DO_ABAND 15
#define DO_SAVE 16
#define DO_SAVENEW 17
#define DO_FIND 18
#define DO_FINDNEXT 19
#define DO_ADD 20 /* Text hinzuladen, Projekt erweitern */
#define DO_unused2 21
#define DO_GOTO 22
#define DO_CUTLINES 23
#define DO_INIT 24
#define DO_REINIT 25
#define DO_TAB2LZ 26
#define DO_UPDATE 27 /* Projekt: Datei geladen?, Text: auf Platte geändert? */
#define DO_LZ2TAB 28
#define DO_LINECOPY 29
#define DO_ZEICHTAB 30
#define DO_SWAPCHAR 31
#define DO_ONE_LEFT 32 /* nur ein Zeichen Shiften */
#define DO_ONE_RIGHT 33
#define DO_BIG2SMALL 34 /* alles klein */
#define DO_SMALL2BIG 35 /* alles groß */
#define DO_CHNG_SMBG 36 /* groß <> klein */
#define DO_CAPS 37 /* Kapitälchen */
#define DO_GO_BLK_A 38 /* zum Blockende */
#define DO_GO_BLK_E 39 /* zum Blockende */
#define DO_UMLAUT 40
#define DO_AUTOSAVE 41
#define DO_FEHLER 42
#define DO_ANZ 43 /* bei Änderung menu_nr[MENU] anpassen */
#define SRCH_CLOSED 0x01 /* Search-Code für geschlossene Fenster */
#define SRCH_OPENED 0x02 /* Search-Code für geöffnete Fenster */
#define SRCH_ANY (SRCH_CLOSED | SRCH_OPENED) /* Search-Code für jedes Fenster */
#define HORIZONTAL 0x01 /* Für Scrolling... */
#define VERTICAL 0x02 /* ...und Schieber setzen */
#define SLPOS 0x01 /* Für Schieber setzen */
#define SLSIZE 0x02
/****** TYPES ****************************************************************/
#define WINDP struct window*
/* Länge der Strings in Titel und Info */
#define WINSTRLEN 256
typedef struct window
{
WORD link;
WORD age;
WINDP next;
WORD handle; /* Handle für Fenster */
WORD opened; /* Wie oft wurde Fenster geöffnet ? */
WORD flags; /* Flags des Fensters */
WORD kind; /* Art des Fensters */
WORD class; /* Klasse des Fensters */
LRECT doc; /* Position und Größe des Dokumentes */
WORD xfac; /* X-Factor des Dokumentes */
WORD yfac; /* Y-Factor des Dokumentes */
WORD w_width; /* Fensterbreite in Einheiten */
WORD w_hight; /* Fensterhöhe in Einheiten */
RECT work; /* Arbeitsbereich */
WORD icon_x, icon_y; /* Position des Icons zum Fenster */
WORD mousenum; /* Nummer der Mausform */
BOOLEAN changed; /* Fenstertitel mit '*' */
UBYTE name[WINSTRLEN]; /* Name des Fensters */
UBYTE titel[WINSTRLEN]; /* Titel des Fensters (mit ' ' und '*') */
UBYTE info[WINSTRLEN]; /* Infozeile des Fensters */
OBJECT *icon; /* Objektbaum für Iconify */
WORD ix, iy; /* Position des Icons */
RECT old_size; /* Absolute Größe vor dem Iconify */
VOID *special; /* z.b.V. */
WORD slider_pos;
WORD init; /* benutzt für Datei in QED-Datei */
/* Zeichnen-Aktion */
VOID (*draw) (WINDP window, CONST RECT *d);
/* Schnapp-Aktion */
VOID (*snap) (WINDP window, RECT *new, WORD mode);
/* Klick-Aktion (selektieren) */
VOID (*click) (WINDP window, MKINFO *mk);
/* Klick-Aktion (deselektieren) */
VOID (*unclick) (WINDP window);
/* Tastatur-Aktion */
BOOLEAN (*key) (WINDP window, MKINFO *mk);
/* Fenster-Aktionen */
VOID (*top) (WINDP window);
VOID (*ontop) (WINDP window);
VOID (*untop) (WINDP window);
VOID (*bottom) (WINDP window);
VOID (*close) (WINDP window);
/* Iconify */
VOID (*iconify) (WINDP window);
VOID (*uniconify) (WINDP window);
} WINDOW;
#undef WINDP;
typedef WINDOW *WINDOWP;
typedef WINDOW *WINDP;
/****** VARIABLES ************************************************************/
EXTERN WINDP sel_window; /* Zeiger auf selektiertes Fenster */
EXTERN SET sel_objs; /* Menge selektierter Objekte */
EXTERN BOOLEAN all_iconified; /* sind wir komplett iconified?? */
/****** FUNCTIONS ************************************************************/
VOID add_windinfo (WORD class, RECT *r, WORD icon_x, WORD icon_y, WORD init);
BOOLEAN get_windinfo (WORD *last, WORD *class, RECT *r, WORD *icon_x, WORD *icon_y, WORD *used);
BOOLEAN rc_first (WORD wh, CONST RECT *b, RECT *r);
BOOLEAN rc_next (WORD wh, RECT *r);
WINDP get_window (WORD link);
WINDP find_window (WORD wh);
WINDP top (VOID);
VOID get_realtop (VOID);
WINDP real_top (VOID);
BOOLEAN free_for_draw (WINDP window);
WORD num_windows (WORD class, WORD mode);
VOID get_all_windows (WORD class, WORD mode, VOID (*doit)(WINDP winndow));
WINDP create_window (WORD kind, WORD class, WORD link, VOID (*crt)(WORD link, WINDP window));
BOOLEAN open_window (WINDP window);
VOID close_window (WINDP window);
VOID destruct_window (WINDP window);
VOID redraw_window (WINDP window, CONST RECT *area);
VOID cycle_window (VOID);
VOID clearup_windows (WORD mode, WORD w, WORD h);
VOID top_window (WINDP window);
VOID ontop_window (WINDP window);
VOID untop_window (WINDP window);
VOID bottom_window (WINDP window, WORD msg);
VOID scroll_window (WINDP window, WORD dir, LONG delta);
VOID arrow_window (WINDP window, WORD arrow, long amount);
VOID h_slider (WINDP window, WORD new_value);
VOID v_slider (WINDP window, WORD new_value);
VOID set_sliders (WINDP window, WORD which, WORD mode);
VOID set_wname (WINDP window, CONST UBYTE *name);
VOID set_winfo (WINDP window, CONST UBYTE *info);
VOID change_window (WINDP window, BOOLEAN changed);
VOID full_window (WINDP window);
VOID size_window (WINDP window, CONST RECT *new, BOOLEAN border);
VOID move_window (WINDP window, CONST RECT *new);
VOID iconify_window (WINDP window, CONST RECT *new, BOOLEAN flag);
VOID uniconify_window (WINDP window, CONST RECT *new);
VOID alliconify (CONST RECT *new);
VOID click_window (WINDP window, MKINFO *mk);
VOID unclick_window (VOID);
BOOLEAN key_window (WINDP window, MKINFO *mk);
VOID do_font_change (WINDP window);
VOID scroll_vertical (const RECT *area, WORD delta);
VOID clr_area (const RECT *area);
VOID init_windows (VOID);
#endif